第一章 操作系统引论
操作系统(OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
操作系统的概念
计算机系统自下而上可大致分为4部分(区别于计组的分层):
- 硬件
- 操作系统
- 应用程序
- 用户
操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。
操作系统的目标和作用
应用环境不同,操作系统的主要目标也不同。
在计算机系统上配置操作系统,其主要目标是:方便性、有效性、可扩充性和开放性。
- 方便性:方便用户使用
- 有效性:提高系统资源利用律,提高系统的吞吐量
- 可扩充性:能够适应计算机硬件、体系结构以及计算机应用发展的要求
- 开放性:系统遵循世界标准规范,使软硬件彼此兼容
操作系统在计算机系统中所起的作用:
OS作为用户与计算机硬件系统直接的接口
- 命令接口:用户利用这些操作命令来组织和控制作业的执行
- 程序接口:由一组系统调用(也称广义指令)组成。编程人员可以使用它们来请求操作系统服务
OS作为计算机系统中资源的管理者
- 处理机管理:分配和控制处理机
- 存储器管理:负责内存的分配和回收
- I/O设备管理:负责I/O设备的分配(回收)与操纵
- 文件管理:实现对文件的存取、共享和保护
OS实现了对计算机资源的抽象
操作系统的发展过程
未配置操作系统的计算机系统
人工操作方式
缺点:用户独占全机;CPU等待人工操作
脱机输入/输出(I/O)方式
优点:减少了CPU空闲时间;提高了I/O速度
单道批处理系统
对作业的处理是成批进行的,但是内存中始终保持一道作业。
主要特征:自动性、顺序性、单道性
处理过程:
缺点:系统中的资源得不到充分的利用,因为在内存中仅有一道程序,每逢该程序在运行中发出I/O操作,CPU便处于等待状态,必须在其完成I/O操作后才能继续运行,且因为I/O设备的低速性,使CPU利用率显著降低。
多道批处理系统
多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种软/硬件资源。特点是多道、宏观上并行、微观上串行。
多道批处理系统的优缺点:
- 资源利用率高。引入多道批处理能使多道程序交替运行,以保持CPU处于忙碌状态;在内存中装入多道程序可调内存的利用率;还提高了I/O设备的利用率
- 系统吞吐量大。提高系统吞吐量的原因:
- CPU和其他资源保持“忙碌”状态
- 仅当作业完成时或运行不下去时才进行切换,系统开销小
- 平均周转时间长。由于作业要排队依次进行处理,因而作业的周转时间较长
- 无交互能力。用户一旦把作业交给系统后,直至作业完成,用户都不能与作业交互,不便于修改和调试
多道批处理系统为了使系统中的多道程序间能协调运行,系统必须处理下述一系列问题:
- 处理机争用
- 内存分配和保护问题
- I/O设备分配问题
- 文件的组织和管理问题
- 作业管理问题
- 用户与系统的接口问题
分时系统
分时技术,是指把处理器的运行时间分成很短的时间片,按时间轮流把处理器分配给各联机作业使用。
特征:
- 同时性,也称多路性:允许将多台终端同时连接到一台主机上,并按分时原则为每个用户服务
- 独立性:每个用户在各自的终端上进行操作,彼此互不干扰
- 及时性:用户能够在很短时间内获得响应
- 交互性
实时系统:系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
按时间限制可以分为两种情况:
- 硬实时系统:某个动作必须绝对地在规定的时刻(或规定的时间范围)发生
- 软实时系统:能够接受偶尔违反时间规定且不会引起任何永久性的损害
实时系统的类型:
- 工业(武器)控制系统
信息查询系统
- 多媒体系统
- 嵌入式系统
实时任务的类型:
- 周期性实时任务和非周期性实时任务
- 硬实时任务和软实时任务
实时系统特征:
- 同时性,也称多路性
- 独立性
- 及时性:以控制对象所要求的截至时间确定
- 交互性
- 可靠性
网络操作系统:把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送。特点:网络中的计算机资源共享、互相通信
分布式计算机系统:分布式操作系统的若干计算机互相协同完成同一任务。特点:分布性、并行性。
操作系统的基本特性
1. 并发
并行性:两个或多个事件在同一时刻发生
并发性:两个或多个事件在同一时间间隔内发生
在未引入进程的系统中,属于同一应用程序的计算程序和I/O程序只能顺序执行。引入进程后才可并发执行。
进程:在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的。
2. 共享
OS环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 互斥共享方式
- 同时访问方式
3. 虚拟
早期一条物理信道只能提供一对用户通话,为了提高信道的利用率而引入了“”虚拟“”技术。
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。
- 时分复用技术:利用某设备为一用户服务的空闲时间,转去为其他用户服务,提高资源利用率
- 虚拟处理机技术
- 虚拟设备技术
- 空分复用技术:利用存储器的空闲分区域存放和运行其他多道程序,提高内存的利用率。不能实现在逻辑上扩大存储器容量的功能,还必须引入虚拟存储器技术。
- 虚拟存储器技术本质上是实现内存的分时复用,使一道程序仅在远小于它的内存空间运行
4. 异步
进程是以人们不可预知的速度向前推进的,此即进程的异步性。
只有在OS中配置有完善的进程同步机制,且运行环境相同,则作业经过多次运行也会获得完全相同的结果。
操作系统的主要功能
处理机管理功能
在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位的,因而对处理机的管理可归结为对进程的管理。
- 进程控制
- 为作业创建进程,并为之分配资源
- 撤销已结束进程,并回收所占资源
- 控制进程在运行过程中的状态转换
- 有线程的OS中,还包括为一个进程创建若干线程,以提高系统的并发性、
- 进程同步
- 进程互斥方式:进程在对临界资源进行访问时,应采用互斥的方式,常用锁机制
- 进程同步方式:在相互合作去完成共同任务的诸进程间,由同步机制对它们的执行加以协调,常用信号量机制
- 进程通信:当相互合作的进程处于同一计算机系统时,通常在它们之间采用之间通信方式,即由源进程利用发送命令之间将消息挂到目标进程的消息队列,以后由目标进程利用接收命令从其消息队列中取出消息。
- 调度
- 作业调度:作业调度的基本任务是从后备队列中按照一定的算法选择从若干个作业,为它们分配运行所需的资源,将这些作业调入内存后,分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并将它们插入就绪队列中
- 进程调度:进程调度的任务是从进程的就绪队列中按照一定算法选出一个进程,将处理机分配给它,并为它设置运行现场,使其投入执行
存储器管理功能
存储器管理的主要任务:为多道程序的运行提供良好的黄金,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。
内存分配
主要任务:
- 为每道程序分配内存空间
- 提高存储器利用率,尽量减少不可用的内存空间(碎片)
- 允许正在执行的程序申请附加的内存空间,以适应程序和数据动态增长的需要
内存分配的方式:
- 静态分配方式:每个作业的内存空间在作业装入时确定,不允许增加和“移动”
- 动态分配方式:每个作业的内存空间在作业装入时确定,允许增加和“移动”
内存保护:
- 确保每道用户程序在自己的内存空间运行,彼此互不干扰
- 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中去执行
地址映射:将(各程序段的)地址空间中的逻辑地址转换为内存空间中与之对应的物理地址
内存扩充:借助虚拟存储技术,从逻辑上扩充内存
- 请求调入功能,允许在仅装入部分用户程序和数据的情况下,启动程序运行,需要时再调入
- 置换功能,将内存中暂时不用的程序和数据调至硬盘,腾出内存空间供需要的程序使用
设备管理功能
主要任务:
- 完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作
- 提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备
文件管理功能
主要任务:对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性
- 文件存储空间的管理
- 目录管理
- 文件的读/写管理和保护
OS结构设计
- 无结构操作系统
- 模块化结构OS
- 分层式结构OS